// 封装axios
import axios from 'axios';
// 导入 Cookie 工具类
import { getCookie } from "@/utils/Cookie";
// import { Message } from "element-ui";

// 创建 axios 对象
const service = axios.create({
    baseURL: 'http://localhost:8080/api', // 请求路径前缀
    timeout: 6000 // 请求超时时间
});

// 白名单
// const whiteList = ['/sys/login'];

// request请求拦截器
service.interceptors.request.use(config => {
    // 请求之前,做一些额外的操作,例如: 携带请求Token
    if (config.url !== '/login') {
        config.headers['Authentication'] = getCookie();
    }
    return config;
}, error => {
    return Promise.reject(error);
});


// response响应拦截器
service.interceptors.response.use(resp => {
    // 响应数据处理
    return resp.data;
}, error => {
    // 可以进行响应失败的一些处理,例如: 没有权限时候进行路由跳转、未登录时候跳转登陆页面
    let status = error.response.status;
    switch (status) {
        case 401:
            // 未登录,跳转到登录页面
            error.message = '未登录，请重新登录';
            break;
        case 403:
            // 没权限,提示权限不足
            error.message = '抱歉，您无权限访问此页面';
            break;
        case 500:
            // 没权限,提示权限不足
            error.message = '抱歉，服务器出错啦';
            break;
    }
    console.log('error:', error)
    return Promise.reject(error.response.data);
});

// 导出 axios 实例对象
export default service;